<?php
include($_SERVER["DOCUMENT_ROOT"] . "/bob.php");
include($_SERVER["DOCUMENT_ROOT"] . "/fonctions_globales.php");
include("verifie_mail_et_mdp.php");
$mysqli = new_mysqli($host, $user, $password, $database); //connection à la DB
$variable_post = filter_input_array(INPUT_POST);


if (!empty($_SESSION['login'])) { //Le joueur s'inscrit, si son inscription est validée, on le loge et on actualise tout, afin que son login soit pris en compte par le module du haut et celui-ci.
    header("Location: validation_inscription.php"); //Du coup, il va ré-arriver sur cette page mais en étant logé, et don con le redirige alors vers validation_inscription.php. TODO : le truc c'est que s'il se loge alors qu'il était sur la page inscription, ça fait la même chose. M'enfin, ça sera rare.
    exit();
}

$mail = "";
$mail2 = "";
$pseudo = "";
$mdp = "";
$mdp2 = "";
$CGU = "";
$question = "";
$couleur = 1;




$value_feedback_pseudo = "";
$value_feedback_mail = "";
$value_feedback_mail2 = "";
$value_feedback_mdp = "";
$value_feedback_mdp2 = "";
$value_feedback_question = "";
$value_feedback_CGU = "";

$class_feedback_pseudo = "";
$class_feedback_mail = "";
$class_feedback_mail2 = "";
$class_feedback_mdp = "";
$class_feedback_mdp2 = "";
$class_feedback_question = "";
$cont = "";
$error = 0;
if (isset($variable_post['btn_valider'])) {
    $mail = $mysqli->real_escape_string(get_data_ss_tag($variable_post['mail']));
    $mail2 = $mysqli->real_escape_string(get_data_ss_tag($variable_post['mail2']));
    $mdp = $mysqli->real_escape_string(get_data_ss_tag($variable_post['mdp']));
    $mdp2 = $mysqli->real_escape_string(get_data_ss_tag($variable_post['mdp2']));
    $pseudo = $mysqli->real_escape_string(trim(get_data_ss_tag($variable_post['pseudo'])));
    $id_question = $mysqli->real_escape_string(trim(get_data_ss_tag($variable_post['id_question'])));
    $reponse = $mysqli->real_escape_string(trim(get_data_ss_tag($variable_post['question'])));
    $couleur = $mysqli->real_escape_string(trim(get_data_ss_tag($variable_post['couleur'])));
    if (!isset($variable_post['CGU']) || ($mysqli->real_escape_string(get_data_ss_tag($variable_post['CGU']))) != '1') {
        $value_feedback_CGU = "Vous devez accepter les conditions générales d\'utilisation pour jouer.";
        $error++;
    } elseif (isset($variable_post['CGU'])) {
        $CGU = $mysqli->real_escape_string(get_data_ss_tag($variable_post['CGU']));
    }

    //$CGU=$mysqli->real_escape_string(get_data_ss_tag($variable_post['CGU']));
    $dat = strtotime("now");
    $cnmdp = hash("sha256", $dat . $mdp);
    //$carac2 = get_data_ss_tag($_POST['carac']);
    //$id_carac = get_num($_POST['carac_id']);
    if (!is_alpha_num($pseudo)) {
        $value_feedback_pseudo = "Ce pseudo comporte des caractères spéciaux interdits.";
        $class_feedback_pseudo = "feedback_negatif";
        $error++;
    } elseif (strlen($pseudo) > 15) {
        $value_feedback_pseudo = "Votre pseudo doit faire moins de 15 caractères.";
        $class_feedback_pseudo = "feedback_negatif";
        $error++;
    } elseif (strlen($pseudo) < 3) {
        $value_feedback_pseudo = "Votre pseudo doit faire au moins 3 caractères.";
        $class_feedback_pseudo = "feedback_negatif";
        $error++;
    } else {
        $nb = mysqli_query_with_error($mysqli, "SELECT COUNT(*) as count FROM gens WHERE LOWER(username) = LOWER('$pseudo')")->fetch_assoc();
        if ($nb['count'] > 0) {
            $value_feedback_pseudo = "Ce pseudo est déjà pris !";
            $class_feedback_pseudo = "feedback_negatif";
            $error++;
        } else {
            $class_feedback_pseudo = "feedback_positif";
        }
    }


    $nb = mysqli_query_with_error($mysqli, "SELECT COUNT(*) as count FROM gens WHERE LOWER(user_email) = LOWER('$mail')")->fetch_assoc();
    if ($nb['count'] > 0) {
        $value_feedback_mail = "Cette adresse email est déjà utilisé.";
        $class_feedback_mail = "feedback_negatif";
        $error++;
    } else {
        if (!filter_var($mail, FILTER_VALIDATE_EMAIL)) {
            $value_feedback_mail = "Adresse email invalide.";
            $class_feedback_mail = "feedback_negatif";
            $error++;
        } else {
            $class_feedback_mail = "feedback_positif";
        }
    }

    $nb = mysqli_query_with_error($mysqli, "SELECT COUNT(*) as count FROM gens WHERE LOWER(user_email) = LOWER('$mail2')")->fetch_assoc();
    if ($nb['count'] > 0) {
        $value_feedback_mail2 = "Cette adresse email est déjà utilisé.";
        $class_feedback_mail2 = "feedback_negatif";
        $error++;
    } else {
        if (!filter_var($mail2, FILTER_VALIDATE_EMAIL)) {
            $value_feedback_mail2 = "Adresse email invalide.";
            $class_feedback_mail2 = "feedback_negatif";
            $error++;
        } elseif ($mail != $mail2) {
            $value_feedback_mail2 = "L'adresse email de confirmation doit être identique à votre adresse email.";
            $class_feedback_mail2 = "feedback_negatif";
            $error++;
        } else {
            $class_feedback_mail2 = "feedback_positif";
        }
    }

    if (strlen($mdp) < 6) {
        $value_feedback_mdp = "Votre mot de passe doit avoir au moins 6 caractères.";
        $class_feedback_mdp = "feedback_negatif";
        $error++;
    } else {
        $class_feedback_mdp = "feedback_positif";
    }
    if (strlen($mdp2) < 6) {
        $value_feedback_mdp2 = "Votre mot de passe doit avoir au moins 6 caractères.";
        $class_feedback_mdp2 = "feedback_negatif";
        $error++;
    } elseif ($mdp != $mdp2) {
        $value_feedback_mdp2 = "Le mot de passe de confirmation doit être identique à votre mot de passe.";
        $class_feedback_mdp2 = "feedback_negatif";
        $error++;
    } else {
        $class_feedback_mdp2 = "feedback_positif";
    }

    $reponses = get_data_in_db($mysqli, 'inscription_questions', 'id_question', $id_question, 'reponses');
    $t_questions = explode(';', $reponses);
    $trouve = false;
    $i = 0;
    while ($i < count($t_questions) && $trouve == false) {
        if (strtolower($t_questions[$i]) == strtolower($reponse)) {
            $trouve = true;
        }
        $i++;
    }
    if ($trouve) {
        $class_feedback_question = "feedback_positif";
    } else {
        $value_feedback_question = "FAUX !";
        $class_feedback_question = "feedback_negatif";
        $error++;
    }



    if ($error == 0) {
        $ipp = $_SERVER['REMOTE_ADDR'];
        $lang = htmlspecialchars($_SESSION['lang']);
        mysqli_query_with_error($mysqli, "INSERT INTO gens(user_active, username, user_password, user_regdate, user_lastvisit, user_email, user_ip, user_lang,couleur) 
		VALUES('1', '$pseudo', '$cnmdp', $dat, $dat, '$mail', '$ipp', '$lang', '$couleur')");
        $infos = get_line_in_db($mysqli, "gens", "username", $pseudo);
        mysqli_query_with_error($mysqli, "INSERT INTO preference_ingame(user_id) VALUES(" . $infos['user_id'] . ")");
        mysqli_query_with_error($mysqli, "INSERT INTO gens_progression(user_id) VALUES(" . $infos['user_id'] . ")");
        mysqli_query_with_error($mysqli, "INSERT INTO portraits_debloques(user_id, portrait_id) VALUES(" . $infos['user_id'] . ", 1)");
        connect_guy($mysqli, $infos); //Connexion

        $mail2 = "Bienvenue à toi dans le monde de Post Human W.A.R.
		Ton inscription s'est déroulée avec succès, avec les informations suivantes:

		Pseudo: $pseudo
		Mot de passe: $mdp

		A bientôt sur nos pages!
		";
        //mail($mail, "Validation de l'inscription à PHW", $mail2);
        //Pour la reco efficace : 
        ?> 
        <!DOCTYPE html>
        <html lang="fr" dir="ltr">
            <head>
                <meta charset="utf-8">
                <script type="text/javascript">
                    parent.parent.update_all_frames(false, '');</script></head><body style="background-color:#111a1c;"></body>
                    <?php
                    exit;
                }
            }

//Cett page ferme le module du haut ! Très important pour la suite, et notamment la page suivante, de validation d'inscription.
            main_body($mysqli, "Inscription", "inscription", "parent.resize_jeu_menu(0);");
            ?>
    <script type="text/javascript">
        function apply_color(color_id) {
            var couleur = get_color(color_id);
            document.getElementById('user_couleur').style.backgroundColor = couleur;
        }
        var target = "";
        function verif_pseudo() {

            var reg = /^[a-zA-Z0-9ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ\-\_\.\s]*$/i
            if (!(reg.test($('#pseudo').val()))) {
                adapter_feedback('pseudo', 'feedback_pseudo', 'Ce pseudo comporte des caractères spéciaux interdits.', 'positif', 'negatif');
                if (target === "") {
                    target = 'pseudo';
                }
                return false;
            } else {
                if ($('#pseudo').val().length < 3) {
                    adapter_feedback('pseudo', 'feedback_pseudo', 'Votre pseudo doit faire au moins 3 caractères', 'positif', 'negatif');
                    if (target === "") {
                        target = 'pseudo';
                    }
                    return false;
                } else {
                    if ($('#pseudo').val().length > 15) {
                        adapter_feedback('pseudo', 'feedback_pseudo', 'Votre pseudo doit faire moins de 15 caractères', 'positif', 'negatif');
                        if (target === "") {
                            target = 'pseudo';
                        }
                        return false;
                    } else {
                        $.ajaxSetup({async: false});
                        $.get('ajax/check_username.php', {pseudo: $('#pseudo').val()},
                        function(data) {
                            result = data;
                        }
                        );
                        $.ajaxSetup({async: true});
                        if (result !== "OK") {
                            adapter_feedback('pseudo', 'feedback_pseudo', 'Ce pseudo est déjà pris !', 'positif', 'negatif');
                            if (target === "") {
                                target = 'pseudo';
                            }
                            return false;
                        } else {
                            adapter_feedback('pseudo', 'feedback_pseudo', '', 'negatif', 'positif');
                            return true;
                        }
                    }
                }

            }

        }




        function verif_adresse_email(adresse_id) {
            if (!isEmail(document.getElementById(adresse_id).value) || document.getElementById(adresse_id).value == "") {
                adapter_feedback(adresse_id, 'feedback_' + adresse_id, 'Adresse email invalide', 'positif', 'negatif');
                if (target === "") {
                    target = adresse_id;
                }
                return false;
            } else {
                $.ajaxSetup({async: false});
                $.get('ajax/check_email.php', {mail: $('#' + adresse_id).val()},
                function(data) {
                    result = data;
                }
                );
                $.ajaxSetup({async: true});
                //alert(result);
                if (result !== "OK") {
                    adapter_feedback(adresse_id, 'feedback_' + adresse_id, 'Cette adresse email est déjà connue', 'positif', 'negatif');
                    if (target === "") {
                        target = adresse_id;
                    }
                    return false;
                } else {
                    adapter_feedback(adresse_id, 'feedback_' + adresse_id, '', 'negatif', 'positif');
                    return true;
                }


            }
        }

        function verif_confirm_adresse_email() {
            if (verif_adresse_email('mail2')) {
                if ($('#mail').val() !== $('#mail2').val()) {
                    adapter_feedback('mail2', 'feedback_mail2', 'L\'adresse email de confirmation doit être identique à votre adresse email.', 'positif', 'negatif');
                    if (target === "") {
                        target = 'mail2';
                    }
                    return false;
                } else {
                    adapter_feedback('mail2', 'feedback_mail2', '', 'negatif', 'positif');
                    return true;
                }
            } else {
                if (target === "") {
                    target = 'mail2';
                }
                return false;
            }
        }

        function verif_mdp(mdp_id) {
            if ($('#' + mdp_id).val().length < 6) {
                adapter_feedback(mdp_id, 'feedback_' + mdp_id, 'Votre mot de passe doit avoir au moins 6 caractères.', 'positif', 'negatif');
                if (target === "") {
                    target = mdp_id;
                }
                return false;
            } else {
                adapter_feedback(mdp_id, 'feedback_' + mdp_id, '', 'negatif', 'positif');
                return true;
            }
        }

        function verif_confirm_mdp() {
            if (verif_mdp('mdp2')) {
                if ($('#mdp').val() !== $('#mdp2').val()) {
                    adapter_feedback('mdp2', 'feedback_mdp2', 'Le mot de passe de confirmation doit être identique à votre mot de passe.', 'positif', 'negatif');
                    if (target === "") {
                        target = 'mdp2';
                    }
                    return false;
                } else {
                    adapter_feedback('mdp2', 'feedback_mdp2', '', 'negatif', 'positif');
                    return true;
                }
            } else {
                if (target === "") {
                    target = 'mdp2';
                }
                return false;
            }
        }

        function verif_question() {
            var id_question = $('#id_question').val();
            //alert(id_question);
            $.ajaxSetup({async: false});
            $.get('ajax/check_question.php', {id_question: $('#id_question').val(), reponse: $('#question').val()},
            function(data) {
                result = data;
            }
            );
            $.ajaxSetup({async: true});
            //alert(result);
            if (result !== "VRAI") {
                adapter_feedback('question', 'feedback_question', 'FAUX !', 'positif', 'negatif');
                if (target === "") {
                    target = 'question';
                }
                return false;
            } else {
                adapter_feedback('question', 'feedback_question', '', 'negatif', 'positif');
                return true;
            }
        }

        function verif_CGU() {
            if ($('#conditions_utilisation').is(':checked')) {
                adapter_feedback('conditions_utilisation', 'feedback_conditions_utilisation', '', 'negatif', 'positif');
                return true;
            } else {
                adapter_feedback('conditions_utilisation', 'feedback_conditions_utilisation', 'Vous devez accepter les conditions générales d\'utilisation pour jouer.', 'positif', 'negatif');
                if (target === "") {
                    target = 'conditions_utilisation';
                }
                return false;
            }
        }

        function adapter_feedback(id_input, id_feedback, texte, etat_a_supprimer, etat_a_ajouter) {

            if (hasClass(document.getElementById(id_input), 'feedback_' + etat_a_supprimer)) {
                $('#' + id_input).toggleClass('feedback_' + etat_a_supprimer);
            }

            if (!hasClass(document.getElementById(id_input), 'feedback_' + etat_a_ajouter)) {
                $('#' + id_input).toggleClass('feedback_' + etat_a_ajouter);
            }
            document.getElementById(id_feedback).innerHTML = texte;
        }


        function verif_formulaire() {
            target = "";
            $('#btn_valider').blur();
            var retour = !verif_pseudo();
            retour += !verif_adresse_email('mail');
            retour += !verif_confirm_adresse_email();
            retour += !verif_mdp('mdp');
            retour += !verif_confirm_mdp();
            retour += !verif_question();
            retour += !verif_CGU();
            $('#btn_valider').blur();
//        retour += !verif_wysiwyg('description');
//        retour += !verif_wysiwyg('signature');
            if (retour > 0) {
                $('html, body').animate({scrollTop: $('#' + target).offset().top - 100}, 'slow');
                $('#' + target).focus();
                return false;
            } else {
                return true;
            }
        }






<?php
echo javascript_mail_n_mdp("formul", "formul");
?>
    </script>
    <?php
    if (trim(@$_POST['name']) != "") { //Si on est arrivé là en remplissant le mini-formulaire de la partie haute du site.
        $mail = get_data_ss_tag($_POST['email']);
        $pseudo = trim(get_data_ss_tag($_POST['name']));
        $mdp = get_data_ss_tag($_POST['mdp']);
    }
    ?>
    <div id='background_corps'> </div><!-- Div contenant simplement la couleur du corps, qui vient se glisser sous le motif de bulle
                                                                                                (le vrai corp se glisse au-dessus, pour être cliquable). -->
    <div id='corps'>
        <div id="contenus">

            <h3>Création de compte</h3>

            <form id="creation_compte" method="post" action="inscription.php" onsubmit="return verif_formulaire()">
                <div class="totale">
                    <label for="pseudo">Choisissez un nom de joueur</label>
                    <p class="description_champ">Les seuls caractères spéciaux autorisés sont les espaces, les tirets, les tirets underscore et les points.</p>
                    <input class="texte <?php echo $class_feedback_pseudo ?>" type="text" id="pseudo" name="pseudo" value="<?php echo $pseudo ?>" maxlength="80" autocomplete='off' tabindex="1" onchange="verif_pseudo()"/>
                    <p class="feedback_negatif" id="feedback_pseudo"><?php echo $value_feedback_pseudo ?></p>
                </div>

                <div class="colonne gauche">
                    <label for="mail">Votre adresse email</label>                
                    <input class="texte <?php echo $class_feedback_mail ?>" type="text" id="mail" name="mail" value="<?php echo $mail ?>" maxlength="150" autocomplete='off' tabindex="2" onchange="verif_adresse_email('mail')"/>
                    <p class="feedback_negatif" id="feedback_mail"><?php echo $value_feedback_mail ?></p>
                    <label for="mdp">Votre mot de passe</label>
                    <input class="texte <?php echo $class_feedback_mdp ?>" type="password" id="mdp" name="mdp" value="<?php echo $mdp ?>" maxlength="80" tabindex="4" onchange="verif_mdp('mdp')"/>
                    <p class="feedback_negatif" id="feedback_mdp"><?php echo $value_feedback_mdp ?></p>

                </div>
                <div class="colonne droite">
                    <label for="mail2">Vérification de votre adresse email</label>
                    <input class="texte droit <?php echo $class_feedback_mail2 ?>" type="text" id="mail2" name="mail2" value="<?php echo $mail2 ?>" maxlength="150" tabindex="3" onchange="verif_confirm_adresse_email()()"/>
                    <p class="feedback_negatif" id="feedback_mail2"><?php echo $value_feedback_mail2 ?></p>
                    <label for="mdp2" <?php echo $class_feedback_mdp2 ?>>Confirmation de votre mot de passe</label>
                    <input class="texte" type="password" id="mdp2" name="mdp2" value="<?php echo $mdp2 ?>" maxlength="80" tabindex="5" onchange="verif_confirm_mdp()"/>
                    <p class="feedback_negatif" id="feedback_mdp2"><?php echo $value_feedback_mdp2 ?></p>

                </div>
                <div class="totale">
                    <label>Votre couleur</label>


                    <select id="select_couleur" class="classic ombre" tabindex="6" onchange="apply_color(document.getElementById('select_couleur').value);
                            return false;" name="couleur" >
                                <?php
                                if (file_exists($_SERVER["DOCUMENT_ROOT"] . '/jeu/bibli/db/couleurs.xml')) {
                                    $xml = simplexml_load_file($_SERVER["DOCUMENT_ROOT"] . '/jeu/bibli/db/couleurs.xml');
                                    foreach ($xml->color as $color) {
                                        if ($color['masque'] == "false") {
                                            echo"<option style='background-color:#" . substr($color['hexa'], 2) . ";' value='{$color['id']}' ";
                                            if ($couleur == $color['id']) {
                                                echo 'SELECTED';
                                            }
                                            echo ">" . $color['name'] . "</option>";
                                        }
                                    }
                                }
                                ?>

                    </select>
                    <div id="user_couleur" class="ombre" style="background-color: <?php echo get_color($couleur) ?>"></div>

                    <p class="description_champ">Choisissez la couleur de votre armée.</p>
                </div>
                <div>
                    <label for="question" class="black">Prouvez-nous que vous n'êtes pas un R-PATCH !</label>
                </div>

                <div class="colonne gauche">
                    <?php
//Récupération de la question
                    $rqt_id_question = "SELECT id_question FROM inscription_questions";
                    $result = mysqli_query_with_error($mysqli, $rqt_id_question);
                    $ids = array();
                    while ($id = $result->fetch_array()) {
                        $ids[] = $id['id_question'];
                    }
                    $choix = rand(0, count($ids) - 1);

                    $id_choisi = $ids[$choix];
                    $questions = get_line_in_db($mysqli, 'inscription_questions', 'id_question', $id_choisi);
                    ?>
                    <input type="hidden" name="id_question" id="id_question" value="<?php echo $id_choisi ?>" onchange="verif_question()"/>
                    <p class="question"><?php echo $questions['question'] ?></p>
                    <?php
                    if ($questions['indice'] != "") {
                        ?>
                        <p class="indice">Indice : <?php echo $questions['indice'] ?></p>
                        <?php
                    }
                    ?>
                </div>
                <div class="colonne droite">
                    <input class="texte <?php echo $class_feedback_question ?>" type="text" id="question" name="question"  tabindex="7" value="<?php echo $question ?>" maxlength="80" onchange="verif_question()"></input>
                    <p class="feedback_negatif" id="feedback_question"><?php echo $value_feedback_question ?></p>
                </div>
                <div class="conditions_utilisation">
                    <div class="ombre">
                        <?php include ('../infos/CGU.html') ?>

                    </div>
                    <input type="checkbox" name="CGU" tabindex="8" value="1"  id="conditions_utilisation" <?php echo (($CGU == "1") ? 'CHECKED' : '') ?> ><label for="conditions_utilisation">J’ai lu et j’accepte les conditions générales d’utilisation</label>
                    <p class="feedback_negatif" id="feedback_conditions_utilisation"><?php echo $value_feedback_CGU ?></p>
                </div>
                <div class="valider">
                    <input type="submit" id="btn_valider" name="btn_valider" value="Valider l’inscription">
                </div>				
            </form><!-- bloc bas -->
            
        </div> <!-- fin div contenu-->
    </div> <!-- fin div corps-->
    <?php
    show_footer();
    